package notes.java.sjms23.s7_decorator;

// 装饰模式
// 奶茶的种类有很多种，比如有巧克力奶茶，QQ奶茶，茉香奶茶等；
// 然而奶茶中又可以加珍珠，红豆，布丁等不通的甜品。
// 奶茶店现在要卖各种口味的奶茶，如果不使用装饰模式，那么在销售系统中，
// 各种不一样的奶茶都要产生一个类，如果有5种奶茶类，5种甜品，那么就会产生至少25个类（不包括混合口味），
// 如果使用了装饰模式，那么几个类就可以搞定了
public class Client {

	public static void main(String[] args) {
		// 巧克力奶茶
		MilkTea milkTea = new ChocolateMilkTea();
		
		// 加糖
		milkTea = new SugarMilkTeaDecoraor(milkTea);
		// 加冰
		milkTea = new IceMilkTeaDecoraor(milkTea);
		// 再加奶油
		milkTea = new CreamMilkTeaDecoraor(milkTea);
		
		System.out.println(milkTea.desc());
		System.out.println(milkTea.price());
		
	}
}
